package com.mybank.domain;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;



public class InterfazBanco 
{

	private JButton boton1;
    private JButton boton2;
    private JButton boton3;
    private JButton boton4;
    private JButton boton5;
    private JButton boton6;
    private JButton boton7;
    private JButton boton8;
    private JButton boton9;
    private JButton boton0;
    private JButton botonDepositar;
    private JButton botonExtraer;
    private JButton botonEnter;
    private JButton botonSaldo;
    private JButton botonPunto;
//    private JButton botonLimpiar;
    
    private JTextField texto;
    
    public enum operaciones { DEPOSITAR, EXTRAER, };

    operaciones operacion;
      
    
    public InterfazBanco()
    {
    	boton1 = new JButton("1");
        boton2 = new JButton("2");
        boton3 = new JButton("3");
        boton4 = new JButton("4");
        boton5 = new JButton("5");
        boton6 = new JButton("6");
        boton7 = new JButton("7");
        boton8 = new JButton("8");
        boton9 = new JButton("9");
        boton0 = new JButton("0");
        
        botonPunto = new JButton(".");
        botonDepositar = new JButton("Depositar");
        botonExtraer   = new JButton("Extraer");
        botonSaldo  = new JButton("Saldo");
        botonEnter   = new JButton("Enter");
     
        texto = new JTextField(12);
        texto.setHorizontalAlignment(JTextField.RIGHT);
        texto.setEditable(true); 
    }
    
	
    private class ClickBoton1 implements ActionListener
    {
      public void actionPerformed(ActionEvent e)
      {
    	  if(texto.getText().contains("Ingrese"))
    	  {
    		  texto.setText("1");
    	  }
    	  else
    	  {
    		  String nuevoTexto = new String();
              nuevoTexto = texto.getText();
              texto.setText(nuevoTexto + "1");  
    	  }
      }
     } 
    
    private class ClickBoton2 implements ActionListener
    {
      public void actionPerformed(ActionEvent e)
      {                          
              String nuevoTexto = new String();
              nuevoTexto = texto.getText();
              texto.setText(nuevoTexto + "2");
      }
     }
    
    private class ClickBotonDepositar implements ActionListener
    {
	    public void actionPerformed(ActionEvent e)
	    {	
	            texto.setText("Ingrese el monto a depositar");
	            operacion = operaciones.DEPOSITAR;
	            botonDepositar.setEnabled(false);
	            botonExtraer.setEnabled(false);
	    }
    }
    
    public void agregarBotones(JPanel miPanel)
    {
        //agrego al panel miPanel los botones 1 al 9 y los operadores.
        miPanel.add(boton1);
        miPanel.add(boton2);
        miPanel.add(boton3);        
        miPanel.add(boton4);
        miPanel.add(boton5);
        miPanel.add(boton6);        
        miPanel.add(boton7);
        miPanel.add(boton8);
        miPanel.add(boton9);
        miPanel.add(boton0);
        miPanel.add(botonPunto);
        miPanel.add(botonEnter);
        
    }
    
    
    public void cargarFrame(Frame frame, JPanel miPanel, JPanel miPanelInferior)
    {
         //agrego el panel2 al frame
        frame.add(miPanelInferior, BorderLayout.EAST);

        //agrego el panel al frame
        frame.add(miPanel, BorderLayout.CENTER);
        frame.add(texto, BorderLayout.NORTH);

    }
    
    public void setearTexto()
    {
            texto.setPreferredSize(new Dimension(100,30));
            texto.setFont(new Font("Dialog",Font.BOLD,13));
            texto.setForeground(new Color(0,0,255));
            texto.setEditable(false);
    }
    
    
    
    
    public void procesar()
    {
        boton1.addActionListener(new ClickBoton1());
        boton2.addActionListener(new ClickBoton2());
//        boton3.addActionListener(new ClickBoton3());
//        boton4.addActionListener(new ClickBoton4());
//        boton5.addActionListener(new ClickBoton5());
//        boton6.addActionListener(new ClickBoton6());
//        boton7.addActionListener(new ClickBoton7());
//        boton8.addActionListener(new ClickBoton8());
//        boton9.addActionListener(new ClickBoton9());
//        boton0.addActionListener(new ClickBoton0());
//        botonPunto.addActionListener(new ClickBotonPunto());
//        botonBorrar.addActionListener(new ClickBotonBorrar()); 
        botonDepositar.addActionListener(new ClickBotonDepositar());
        botonEnter.addActionListener(new ClickBotonEnter());
    }
    
    
    private class ClickBotonEnter implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
        	texto.setText("nada personal" );
        	botonDepositar.setEnabled(true);
        	botonExtraer.setEnabled(true);
        }
    }

    public void launchFrame()
    {
        // creo el frame donde va todo
        JFrame frame = new JFrame("Cajero Automatico");
        frame.setLayout(new BorderLayout());
        frame.setSize(6,4);

        //creo un panel en el que van los nmeros
        JPanel miPanel = new JPanel();
        miPanel.setLayout(new GridLayout(4,4));

        //creo otro panel en el que va el boton Enter
        JPanel miPanelDerecho = new JPanel();
        miPanelDerecho.setLayout (new GridLayout(3,1));

        agregarBotones(miPanel);
        //en el panel 2 esta el boton Enter y el Limpiar       
        miPanelDerecho.add(botonDepositar);
        miPanelDerecho.add(botonExtraer);
        miPanelDerecho.add(botonSaldo);

        cargarFrame(frame, miPanel, miPanelDerecho);

        frame.setLocation(450, 200);
        setearTexto();
        frame.setVisible(true);
        frame.pack();
        procesar();
    }
    
	public static void main(String[] args  )
	{
		InterfazBanco miInterfaz = new InterfazBanco();
		miInterfaz.launchFrame();
	}
}
